Webページ作成ノート 目次 / rain's home page

DTD for XSLT

作成日: 1999年09月15日
最終更新日: 1999年11月01日
<!ENTITY % char-instructions "
  | xsl:apply-templates
  | xsl:call-template
  | xsl:apply-imports
  | xsl:for-each
  | xsl:value-of
  | xsl:copy-of
  | xsl:number
  | xsl:choose
  | xsl:if
  | xsl:text
  | xsl:copy
  | xsl:variable
  | xsl:message
">

<!ENTITY % instructions "
  %char-instructions;
  | xsl:pi
  | xsl:comment
  | xsl:element
  | xsl:attribute
  | xsl:use
">

<!ENTITY % char-template "
 (#PCDATA
  %char-instructions;)*
">

<!ENTITY % template "
 (#PCDATA
  %instructions;
  %result-elements;)*
">

<!-- URIである属性値に使用される-->
<!ENTITY % URI "CDATA">

<!-- パターンである属性値に使用される-->
<!ENTITY % pattern "CDATA">

<!-- 式である属性値に使用される-->
<!ENTITY % expr "CDATA">

<!-- 一つの文字から成る属性値に使用される-->
<!ENTITY % char "CDATA">

<!-- 優先度である属性値に使用される -->
<!ENTITY % priority "NMTOKEN">

<!ENTITY % space-att "xml:space (default|preserve) #IMPLIED">

<!ENTITY % top-level "
 (xsl:import*,
  (xsl:include
  | xsl:strip-space
  | xsl:preserve-space
  | xsl:key
  | xsl:functions
  | xsl:locale
  | xsl:attribute-set
  | xsl:variable
  | xsl:param-variable
  | xsl:template)*)
">

<!ELEMENT xsl:stylesheet %top-level;>
<!ELEMENT xsl:transform %top-level;>

<!ATTLIST xsl:stylesheet
  result-ns NMTOKEN #IMPLIED
  default-space (preserve|strip) "preserve"
  indent-result (yes|no) "no"
  id ID #IMPLIED
  xmlns:xsl CDATA #FIXED "http://www.w3.org/XSL/Transform/1.0"
  %space-att;
>

<!ELEMENT xsl:import EMPTY>
<!ATTLIST xsl:import href %URI; #REQUIRED>

<!ELEMENT xsl:include EMPTY>
<!ATTLIST xsl:include href %URI; #REQUIRED>

<!ELEMENT xsl:strip-space EMPTY>
<!ATTLIST xsl:strip-space elements NMTOKENS #REQUIRED>

<!ELEMENT xsl:preserve-space EMPTY>
<!ATTLIST xsl:preserve-space elements NMTOKENS #REQUIRED>

<!ELEMENT xsl:key EMPTY>
<!ATTLIST xsl:key
  name NMTOKEN #REQUIRED
  match %tpattern; #REQUIRED
  use %expr; #REQUIRED
>

<!ELEMENT xsl:functions (#PCDATA)>
<!ATTLIST xsl:functions
  ns NMTOKEN #REQUIRED
  code CDATA #IMPLIED
  archive CDATA #IMPLIED
>

<!ELEMENT xsl:locale EMPTY>
<!ATTLIST xsl:locale
  name NMTOKEN #IMPLIED
  decimal-separator %char; "."
  grouping-separator %char; ","
  infinity CDATA "&#x221E;"
  minus-sign %char; "-"
  NaN CDATA "&#xFFFD;"
  percent %char; "%"
  per-mill %char; "&#x2030;"
  zero-digit %char; "0"
  digit %char; "#"
  pattern-separator %char; ";"
>

<!ELEMENT xsl:template
 (#PCDATA
  %instructions;
  %result-elements;
  | xsl:param-variable)*
>

<!ATTLIST xsl:template
  match %tpattern; #IMPLIED
  name NMTOKEN #IMPLIED
  priority %priority; #IMPLIED
  mode NMTOKEN #IMPLIED
  %space-att;
>

<!ELEMENT xsl:value-of EMPTY>
<!ATTLIST xsl:value-of
  select %expr; #REQUIRED
>

<!ELEMENT xsl:copy-of EMPTY>
<!ATTLIST xsl:
-of select %expr; #REQUIRED>

<!ELEMENT xsl:umber EMPTY>
<!ATTLIST xsl:number
   level (single|multi|any) "single"
   count CDATA #IMPLIED
   from CDATA #IMPLIED
   expr %expr; #IMPLIED
   format CDATA '1'
   xml:lang NMTOKEN #IMPLIED
   letter-value (alphabetic|other) #IMPLIED
   digit-group-sep CDATA #IMPLIED
   n-digits-per-group NMTOKEN #IMPLIED
   sequence-src %URI; #IMPLIED
>

<!ELEMENT xsl:apply-templates (xsl:sort|xsl:param)*>
<!ATTLIST xsl:apply-templates
  select %expr; "node()"
  mode NMTOKEN #IMPLIED
>

<!ELEMENT xsl:apply-imports EMPTY>

<!-- xsl:sort は他の要素または非空白文字の後に現れることはできない -->

<!ELEMENT xsl:for-each
 (#PCDATA
  %instructions;
  %result-elements;
  | xsl:sort)*
>

<!ATTLIST xsl:for-each
  select %expr; #REQUIRED
  %space-att;
>

<!ELEMENT xsl:sort EMPTY>
<!ATTLIST xsl:sort
  select %expr; "."
  lang CDATA #IMPLIED
  data-type (text|number) "text"
  order (ascending|descending) "ascending"
  case-order (upper-first|lower-first) #IMPLIED
>

<!ELEMENT xsl:if %template;>
<!ATTLIST xsl:if
  test %expr; #REQUIRED
  %space-att;
>

<!ELEMENT xsl:choose (xsl:when+, xsl:otherwise?)>
<!ATTLIST xsl:choose %space-att;>

<!ELEMENT xsl:when %template;>
<!ATTLIST xsl:when
  test %expr; #REQUIRED
  %space-att;
>

<!ELEMENT xsl:otherwise %template;>
<!ATTLIST xsl:otherwise %space-att;>

<!ELEMENT xsl:attribute-set (xsl:attribute|xsl:use)*>
<!ATTLIST xsl:attribute-set
  name NMTOKEN #REQUIRED
>

<!ELEMENT xsl:call-template (xsl:param)*>
<!ATTLIST xsl:call-template
  name NMTOKEN #REQUIRED
>

<!ELEMENT xsl:param %template;>
<!ATTLIST xsl:param
  name NMTOKEN #REQUIRED
  expr %expr; #IMPLIED
>

<!ELEMENT xsl:variable %template;>
<!ATTLIST xsl:variable 
  name NMTOKEN #REQUIRED
  expr %expr; #IMPLIED
>

<!ELEMENT xsl:param-variable %template;>
<!ATTLIST xsl:param-variable 
  name NMTOKEN #REQUIRED
  expr %expr; #IMPLIED
>

<!ELEMENT xsl:text (#PCDATA)>

<!ELEMENT xsl:pi %char-template;>
<!ATTLIST xsl:pi 
  name CDATA #REQUIRED
  %space-att;
>

<!ELEMENT < a href=#element#>xsl:element %template;>
<!ATTLIST xsl:element 
  name CDATA #REQUIRED
  namespace CDATA #IMPLIED
  %space-att;
>

<!ELEMENT xsl:attribute %char-template;>
<!ATTLIST xsl:attribute 
  name CDATA #REQUIRED
  namespace CDATA #IMPLIED
  %space-att;
>

<!ELEMENT xsl:use EMPTY>
<!ATTLIST xsl:use attribute-set NMTOKEN #REQUIRED>

<!ELEMENT xsl:comment %char-template;>
<!ATTLIST xsl:comment %space-att;>

<!ELEMENT xsl:copy %template;>
<!ATTLIST xsl:copy %space-att;>

<!ELEMENT xsl:message %template;>
<!ATTLIST xsl:message %space-att;>